package agh.rozproszony.DBStorage;

import agh.rozproszony.model.Message;
import agh.rozproszony.model.Room;
import agh.rozproszony.model.User;
import java.sql.SQLException;

public class TestDataGenerator {

    /**
     * Uzupelnia baze testowymi danymi. UWAGA, czysci dotychczasowe wartosci w
     * bazie
     *
     * @param db
     */
    public static void prepareSampleDatabase(DataBaseEngine db) {
        try {
            db.clearDatabase();
            addSampleUsers(db);
            addSampleRooms(db);
            addSampleMessages(db);
        } catch (SQLException ex) {
            throw new RuntimeException("Nie mozna utworzyc danych testowych!", ex);
        }
    }

    /**
     * Dodaje przykladowych uzytkownikow do bazy danych
     *
     * @param db
     * @throws SQLException
     */
    public static void addSampleUsers(DataBaseEngine db) throws SQLException {
        db.insertUser(new User(1, "martin@gmail.com", "martin", "123", User.TYPE_USER));
        db.insertUser(new User(2, "jack@gmail.com", "jack", "qwe", User.TYPE_USER));
        db.insertUser(new User(3, "john@gmail.com", "john", "ttt", User.TYPE_USER));
        db.insertUser(new User(4, "steve@gmail.com", "steve", "pass123", User.TYPE_USER));
        db.insertUser(new User(5, "jessica@gmail.com", "jessica", "xxxx1111", User.TYPE_USER));
        db.insertUser(new User(6, "admin@agh.edu.pl", "administrator", "admin1", User.TYPE_ADMIN));
    }

    /**
     * Dodaje przeykladowe pokoje do bazy danych
     *
     * @param db
     * @throws SQLException
     */
    public static void addSampleRooms(DataBaseEngine db) throws SQLException {
        db.insertRoom(new Room(1, "Small room", 10));
        db.insertRoom(new Room(2, "Medium room", 20));
        db.insertRoom(new Room(3, "Big room", 30));
        db.insertRoom(new Room(4, "Huge room", 40));
    }
    
     /**
     * Dodaje przeykladowe wiadomosci do bazy danych
     *
     * @param db
     * @throws SQLException
     */
    public static void addSampleMessages(DataBaseEngine db) throws SQLException {
        db.insertMessage(new Message(1, "Wiadomość pierwsza", "Wiadomość pierwsza tresc wiadomości ", 2, 1, 1));
        db.insertMessage(new Message(2, "Wiadomość Druga", "Wiadomość druga treść wiadomości śćżźńółńąęĄĘŚĆŻŃÓ", 3, 1, 1));
        db.insertMessage(new Message(3, "Wiadomość trzecia", "Wiadomość trzecia znowu tresc wiadomosci", 4, 1, 1));
        db.insertMessage(new Message(4, "Wiadomość czwarta", "Wiadomość czwarta tresc wiadomosci", 5, 1, 1));
        db.insertMessage(new Message(5, "Wiadomość piata", "Wiadomość piata tresc wiadomosci dasdasd sa d asd sad sad asdasdasdsad sadsadas dsa das d as das dasdasdas das das dsa dsa d sad sad ad sa dsa dsa dsa das  ", 6, 1, 1));
    }
}
